OpenShift

OpenShift is a platform based on Kubernetes to host and manage applications in containers.

Core concepts

Software

Containers & pods

Containers
Lightweight, standalone executable packages that include everything needed to run an application. Modern containers use the Open Container Initiative (OCI) standard and aren’t limited to Docker. They enable consistent deployment across different environments.
Images
Immutable templates used to create containers. They follow a layered architecture and can be built using various tools like Buildah, Podman, or Docker. Images are defined using Containerfiles or Dockerfiles.
Image tags
Metadata identifiers for image versions, variants, and architectures. Modern practices include using content-addressable digests alongside tags for immutable references.
Container registries
Centralized repositories that store and distribute container images. Support features like vulnerability scanning, signing, and RBAC. Popular options include Quay.io, Docker Hub, and private registries.
Pods
Smallest deployable units in Kubernetes/OpenShift. Can contain multiple containers that share network namespace, storage, and lifecycle. Pods are ephemeral and should be managed through higher-level controllers.
Pod lifecycle
Managed through phases including Pending, Running, Succeeded, Failed, and Unknown. Containers within pods can have individual restart policies and health checks.
Services
Abstract way to expose applications running in pods. Types include ClusterIP, NodePort, LoadBalancer, and ExternalName. Support features like service mesh integration.
Labels and annotations
Key-value pairs for organizing and selecting Kubernetes resources. Annotations provide non-identifying metadata for automation and tooling.

Projects & users

Users
Identity management integrated with enterprise systems (LDAP, OAuth, etc.). Supports Role-Based Access Control (RBAC) with custom roles and bindings.
Kubernetes namespaces
Virtual clusters within a physical cluster. Support resource quotas, network policies, and service isolation. Enable multi-tenancy and environment separation.
Projects
OpenShift’s extension of namespaces with additional security controls, routing, and monitoring features. Support for project templates and operator integration.

Builds & Deployments

Builds
Pipeline-based image creation process. Supports multiple build strategies including Source-to-Image (S2I), Containerfile, and custom builds. Integration with modern CI/CD tools like Tekton.
Image streams
OpenShift abstraction for managing container images. Support automatic updates, rollbacks, and deployment triggers. Enable image promotion across environments.
Deployments
Declarative updates to applications. Use ReplicaSets (replacing older ReplicationControllers) for maintaining desired pod state. Support advanced deployment strategies like rolling, blue-green, and canary.
Jobs and CronJobs
Manage pods that run to completion. Support for parallel processing, retry policies, and scheduled execution. Integration with cluster autoscaling.
Operators
Software extensions to Kubernetes that use custom resources to manage applications and their components. Automate operational tasks and complex deployments.

Infrastructure

Nodes
Physical or virtual machines running containerized workloads. Support various runtime classes and compute profiles. Can be managed through machine sets and autoscaling.
Clusters
Distributed systems for container orchestration. Support hybrid and multi-cloud deployments, federation, and advanced networking models.
Service mesh
Infrastructure layer for service-to-service communication. Provides traffic management, security, and observability features.

More information: